/**
 * Captain
 * © 2018 Captain copyright，All rights reserved.
 * http://www.sccaptain.com.cn
 * 
 * JAVA : 8
 * 文  件  名: OrderFormService.java
 * 创  建  人: QinYoubin (qin.youbin@sccaptain.com.cn)
 * 创建时间: 2018年5月2日 下午2:01:44
 * 版         本: 1.0.0
 * 备         注:
 * 修订历史:
 */
package com.material.c2c.shoping.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.cpt.framework.core.OperationResult;
import com.material.c2c.shoping.entity.DD_SP_MAP;
import com.material.c2c.shoping.entity.GWDD;

/**
 * 订单信息
 * @since 1.0
 * @version 1.0
 * @author QinYoubin (qin.youbin@sccaptain.com.cn)
 */
public interface OrderFormService {

  /**
   * 新增订单
   * @param gwdd
   * @param mapList
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  GWDD add(GWDD gwdd, List<DD_SP_MAP> mapList,List<String> cartList);

  /**
   * 取消订单
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult cancel(String id);

  /**
   * 删除订单
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult delete(String id);

  /**
   * 更改订单状态为支付
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult paid(String id,String payMethods);

  /**
   * 更改状态为配送中
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult dispatching(String id);

  /**
   * 更改状态为配送成功
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult dispatched(String id);

  /**
   * 完成订单
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  OperationResult finish(String id);

  /**
   * 
   * 查询订单信息
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  List<GWDD> list(String id,int ddzt);
  /**
   * 获取单条订单
   * @param id
   * @return
   * @since 1.0
   * @version 1.0
   * @author QinYoubin (qin.youbin@sccaptain.com.cn)
   */
  GWDD getOne(String id);
  /**
   * 分页查询订单
   * @param zt
   * @param pageable
   * @return
   * @since 1.0
   * @version 1.0
   */
  Page<GWDD> getPage(int zt, Pageable pageable);

OperationResult changeStatus(String id, int zt);

}
